#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
namespace Cephei.QL.Math.Integrals
{
    /// <summary> 
	/// ! This class provide an adaptive integration procedure using 15 points Gauss-Kronrod integration rule.  This is more robust in that it allows to integrate less smooth functions (though singular functions should be integrated using dedicated algorithms) but less efficient beacuse it does not reuse precedently computed points during computation steps.  References:  Gauss-Kronrod Integration
	/// <http://mathcssun1.emporia.edu/~oneilcat/ExperimentApplet3/ExperimentApplet3.html>  NMS - Numerical Analysis Library
	/// <http://www.math.iastate.edu/burkardt/f_src/nms/nms.html>  \test the correctness of the result is tested by checking it against known good values.
	/// </summary>
    [Guid ("E2434F0B-4333-4b87-89AF-A40B3ABCF836"),ComVisible(true)]
	public interface IGaussKronrodAdaptive : Cephei.QL.Math.Integrals.IIntegrator
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }   

    /// <summary> 
	/// ! This class provide an adaptive integration procedure using 15 points Gauss-Kronrod integration rule.  This is more robust in that it allows to integrate less smooth functions (though singular functions should be integrated using dedicated algorithms) but less efficient beacuse it does not reuse precedently computed points during computation steps.  References:  Gauss-Kronrod Integration
	/// <http://mathcssun1.emporia.edu/~oneilcat/ExperimentApplet3/ExperimentApplet3.html>  NMS - Numerical Analysis Library
	/// <http://www.math.iastate.edu/burkardt/f_src/nms/nms.html>  \test the correctness of the result is tested by checking it against known good values. Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IGaussKronrodAdaptive_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IGaussKronrodAdaptive Create (Double tolerance, Microsoft.FSharp.Core.FSharpOption<UInt64> maxFunctionEvaluations);
    }
}

